package config

import (
	"errors"
	"log"
	"os"

	"github.com/Unknwon/goconfig"
)

const configFile = "/conf/conf.ini"

var File *goconfig.ConfigFile

// 加载此文件时 会先走此初始化方法
func init() {
	currentDir, err := os.Getwd()
	if err != nil {
		panic(err)
	}
	configPath := currentDir + configFile

	argsLen := len(os.Args) // default 0 self, 1 first param.
	if argsLen > 1 {
		paramPath := os.Args[1]
		if paramPath != "" {
			configPath = paramPath
		}
	}

	if !fileExist(configPath) {
		log.Fatal(errors.New("配置文件不存在")) // log.Fatal也会中止服务
	}

	// fmt.Println(configPath)

	// 文件系统的读取
	File, err = goconfig.LoadConfigFile(configPath)
	if err != nil {
		log.Fatal("读取配置文件出错", err)
	}

	// fmt.Println(File)
}

func fileExist(fileName string) bool {
	_, err := os.Stat(fileName)
	return err == nil || os.IsExist(err) // 如果err是文件或目录已存在的 那也是fileExist，返回true
}
